const Mock = require('mockjs')
/*
commonjs暴露一个函数
函数返回包含多个属性数据的data对象
data对象上的每个属性都会映射为一个REST接口
*/
module.exports = () => {

  // // 通过Random对象的方法生成单个随机数据
  // console.log(Mock.Random.id(), Mock.Random.cname())
  // console.log(Mock.Random.id(), Mock.Random.cname())

  // // 通过Mock对象的mock方法生成包含多个数据的对象
  // const mockData = Mock.mock({
  //   "name|1-10": "★", //1到10个*组成的字符串 
  //   "modules|2": [ // 随机取2个元素组成数组 
  //     "AMD",
  //     "CMD",
  //     "UMD"
  //   ],
  //   author: '@cname', // 姓名
  //   img: '@image("200x100", "#50B347")', // 指定颜色和宽度的图片
  //   start: '@datetime', // 日期时间
  //   address: '@province' // 省
  // })
  // console.log(mockData)



// 通过mockjs产生数据对象
const data = Mock.mock({
  // 新闻列表
  'newsList|1000': [
    {
      'id|+1': 1, // 新闻ID
      title: '@ctitle(5, 10)', // 标题（长度在10到50之间）
      author: '@cname', // 作者名字
      image: '@image("200x100", "#50B347", "#FFF", "@name")', // 图片链接
      content: '@csentence(50, 100)', //文章内容（长度在50到100之间的句子）
      createTime: '@datetime', // 创建时间
      'category|1': ['军事', '娱乐', '财经', '科技', '体育'], // 从数组中选择一个值
    },
  ],

  // 订单列表
  'orderList|1200': [
    {
      'id|+1': 1,
      orderNo: '@string("number", 10)', // 10个数值组成的字符串
      createTime: '@datetime', // 日期时间
      receiverName: '@cname', // 中文姓名
      receiverPhone: /^1[3-9]\d{9}$/, //手机号
      receiverAddress: '@province@city@county@zip', // 省市区邮编
      'orderItems|1-5': [
        // 数组长度1到5
        {
          'skuId|+1': 5,
          'name|1': ['口罩', '健身时尚用品', '瑜伽垫','可穿戴设备'],
          price: '@float(50, 100, 2, 2)', // 小数50到100之间, 小数点位数为2
          skuNum: '@integer(1, 5)', // 整数1到5
          skuImage: '@image', // 图片
        },
      ],
      originalPrice: '@float(500, 1000, 2, 2)',
      discountAmount: '@float(10, 200, 2, 2)',
      totalPrice: function () {
        // 函数的返回值作为属性值, this为当前所在的对象
        return (this.originalPrice - this.discountAmount).toFixed(2);
      },
      'status|1': ['待付款', '待发货', '待收货', '已完成'],
    },
  ],
});

// 也可以手动生成数据后添加到数据对象中添加
let userList = [];
for (let i = 1; i <= 200; i++) {
  const user = {
    id: Mock.Random.id(),
    name: Mock.Random.cname(),
    gender: Mock.Random.integer(0, 1) + '',
    birth: Mock.Random.date('yyyy-MM-dd'),
  };
  userList.push(user);
}
// 用户列表
data.userList = userList;

return data;

  

}